package com.xyd.service;

import com.xyd.entity.PageBean;
import com.xyd.entity.Product;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface ProductSericve {

  /**
   * 根据用户名获取信息
   *
   * @param product
   * @return 商品信息
   */
  Product getProduct(Product product);

  /**
   * 根据商品分类id进行分类
   *
   * @param id 商品分类id
   * @return 商品信息
   */
  List<Product> getProductById(int id);

  /**
   * 管理员页码展示所有商品
   *
   * @param currentPage
   * @return 商品列表
   */
  PageBean<Product> adminShowProduct(Integer currentPage);

  /**
   * 管理员根据商品id删除商品
   *
   * @param epId 商品id
   * @return 是否删除成功
   */
  boolean adminDeleteProductByEpId(long epId);

  /**
   * 根据商品id查询商品信息
   *
   * @param epId 商品id
   * @return 商品信息
   */
  Product adminGetProductByEpId(Long epId);

  /**
   * 修改商品信息
   *
   * @param product 商品新信息
   * @return 是否成功
   */
  Boolean adminChangeProduct(Product product);

  /**
   * 获取所有商品信息
   *
   * @return 商品信息
   */
  List<Product> getAllProduct();

  /**
   * 添加商品信息
   *
   * @param product 商品信息
   * @return 是否成功
   */
  Boolean adminAddProduct(Product product);

  /**
   * 根据名字获取相应的product信息 最近5条商品信息
   *
   * @param name 商品名称
   * @return product
   */
  List<Product> getOldProduct(@Param("name") String name);

  /**
   * 根据主键id获取对应的信息
   *
   * @param id 主键
   * @return
   */
  Product getProductByEpid1(@Param("id") Long id);

  /**
   * 查询购物车中所有商品信息
   *
   * @param cookieValue 购物车中商品id和数量
   * @return 商品集合
   */
  List<Product> getProductByEpIds(String cookieValue);
}
